1   /*
2    * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.
8    *
9    * This code is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12   * version 2 for more details (a copy is included in the LICENSE file that
13   * accompanied this code).
14   *
15   * You should have received a copy of the GNU General Public License version
16   * 2 along with this work; if not, write to the Free Software Foundation,
17   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18   *
19   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20   * or visit www.oracle.com if you need additional information or have any
21   * questions.
22   */
23  
24  /*
25   * @test
26   * @bug 4984407
27   * @summary Tests for {Math, StrictMath}.atan2
28   * @author Joseph D. Darcy
29   */
30  
31  public class Atan2Tests {
32      private Atan2Tests(){}
33  
34      static int testAtan2Case(double input1, double input2, double expected) {
35          int failures = 0;
36          failures += Tests.test("StrictMath.atan2(double, double)", input1, input2,
37                                 StrictMath.atan2(input1, input2), expected);
38          failures += Tests.test("Math.atan2(double, double)", input1, input2,
39                                 Math.atan2(input1, input2), expected);
40  
41          return failures;
42      }
43  
44      static int testAtan2() {
45          int failures = 0;
46  
47          double [][] testCases = {
48              {-3.0,      Double.POSITIVE_INFINITY,       -0.0},
49          };
50  
51          for (double[] testCase : testCases) {
52              failures+=testAtan2Case(testCase[0], testCase[1], testCase[2]);
53          }
54  
55          return failures;
56      }
57  
58      public static void main(String [] argv) {
59          int failures = 0;
60  
61          failures += testAtan2();
62  
63          if (failures > 0) {
64              System.err.println("Testing atan2 incurred "
65                                 + failures + " failures.");
66              throw new RuntimeException();
67          }
68      }
69  }